The advent of remote computing applications that are provided by remote service providers has resulted in the migration of computational functionality from away from on-premises equipment and computing resources. For example, many organizations utilize computing functionality provided by a remote service provider to give their employees access to a remote desktop environment thereby obviating the need for locally executed operating system and applications on an employee's device. Further, document collaboration applications enable users to collaborate, comment on or edit documents stored and managed by a remote service provider. In all remote computing applications, however, content, such as audiovisual media, is required to be provided to various devices that are connected to the remote service provider using different networks having different network conditions. The devices may also have different attributes.
Accordingly, it is challenging optimally deliver content to client devices having different device attributes and experiencing changing network conditions. Further, it is challenging to dynamically change the content delivery protocol used to provide content to a client device based at least in part on changing network conditions, usage conditions or device attributes.